#ifndef __SOCKETMANAGER_H__
#define __SOCKETMANAGER_H__

#include "socket.h"
#include <memory>

class SocketManager
{
public:
    typedef std::shared_ptr<SocketManager> ptr;

    //创建一个新的Socket
    Socket::ptr get();

    //用一个有效的文件描述符初始化
    Socket::ptr get(int fd);

    //移除Socket
    void del(int fd);
private:
    //文件描述符到socket的映射
    std::map<int, Socket::ptr> m_sockets;
};

#endif // !__SOCKETMANAGER_H__